package br.com.sgi.vo;

import java.util.Date;
import java.util.HashMap;
import java.util.Map;

import br.com.sgi.enuns.OpcaoPesquisaEnum;
import br.com.sgi.enuns.OperacaoPesquisaEnum;
import br.com.sgi.enuns.OperadorPesquisaEnum;
import br.com.sgi.util.Constante;

public class ParametroPesquisa {
	
	private String opcao;
	private String operacao;
	private String juncao;
	
	private String dsOpcao;
	private String dsOperacao;
	private String dsJuncao;
	
	private int tpParamentro;
	
	private Date dtPesquisa;
	
	private Object dado;
	
	private String status;
	
	Map<String, String> mapOpcoesPesquisaData =  new HashMap<String, String>();
	Map<String, String> mapOperacoesPesquisa =  new HashMap<String, String>();
	Map<String, String> mapJuncoesPesquisa =  new HashMap<String, String>();
	
	
	
//	private void initMap(){
//		
//		mapOpcoesPesquisaData.put("DB","Data Batismo");
//		mapOpcoesPesquisaData.put("DC","Data Conversão");
//		mapOpcoesPesquisaData.put("DT","Data Transferência");
//		mapOpcoesPesquisaData.put("DC","Data Casamento");
//		mapOpcoesPesquisaData.put("DV","Data Conversão");	
////		mapOpcoesPesquisaData.put("M","Matricula");
////		mapOpcoesPesquisaData.put("N","Nome");
//		
//		mapOperacoesPesquisa.put(">", "Maior");
//		mapOperacoesPesquisa.put("<", "Menor");
//		mapOperacoesPesquisa.put(">=", "Maior igual");
//		mapOperacoesPesquisa.put("<=", "Menor igual");
//		mapOperacoesPesquisa.put("=", "Igual");
//		
//		mapJuncoesPesquisa.put("AND", "E");
//		mapJuncoesPesquisa.put("OR", "OU");
//		
//	}
	
	
	public Object getDado() {
		return dado;
	}
	public void setDado(Object dado) {
		this.dado = dado;
	}
	public Date getDtPesquisa() {
		return dtPesquisa;
	}
	public void setDtPesquisa(Date dtPesquisa) {
		this.dtPesquisa = dtPesquisa;
	}


	public String getOpcao() {
		return opcao;
	}


	public void setOpcao(String opcao) {
		this.opcao = opcao;
	}


	public String getOperacao() {
		return operacao;
	}


	public void setOperacao(String operacao) {
		this.operacao = operacao;
	}


	public String getJuncao() {
		juncao = "AND";
		return juncao;
	}


	public void setJuncao(String juncao) {
		this.juncao = juncao;
	}


	public String getDsOpcao() {
		if(opcao != null)
			dsOpcao = OpcaoPesquisaEnum.getTipoCampoPorValor(opcao);
		return dsOpcao;
	}


	public void setDsOpcao(String dsOpcao) {
		this.dsOpcao = dsOpcao;
	}


	public String getDsOperacao() {
		
		if(operacao != null)
			dsOperacao = OperacaoPesquisaEnum.getTipoCampoPorValor(operacao);	
		return dsOperacao;
	}


	public void setDsOperacao(String dsOperacao) {
		this.dsOperacao = dsOperacao;
	}


	public String getDsJuncao() {
		if(juncao != null)
			dsJuncao = OperadorPesquisaEnum.getTipoCampoPorValor(juncao);	
		return dsJuncao;
	}


	public void setDsJuncao(String dsJuncao) {
		this.dsJuncao = dsJuncao;
	}


	public int getTpParamentro() {
		
		if(opcao != null){
			
			if(dtPesquisa != null){
				return Constante.TIPO_PESQUISA_DATA;
			}else
				if(opcao.equals(OpcaoPesquisaEnum.NOME.getCodigo())){
					return Constante.TIPO_PESQUISA_NOME;
				}else
					if(opcao.equals(OpcaoPesquisaEnum.MATRICULA.getCodigo())){
						return Constante.TIPO_PESQUISA_MATRICULA;
					}else
						if(opcao.equals(OpcaoPesquisaEnum.SEXO.getCodigo())){
							return Constante.TIPO_PESQUISA_NOME;
						}
			
		}
		
		return tpParamentro;
	}


	public void setTpParamentro(int tpParamentro) {
		this.tpParamentro = tpParamentro;
	}





	public String getStatus() {
		return status;
	}


	public void setStatus(String status) {
		this.status = status;
	}
	
	
}